Software
4.1 Types of software and interrupts
Candidates should be able to:
- Describe the difference between system software and application software and provide examples of each
Note and guidance
- System software provides the services that the computer requires, including operating system and utility software
- Application software provides the services that the user requires
- Describe the role and basic functions of an operating system
Note and guidance
- Including:
- managing files
- handling interrupts
- providing an interface
- managing peripherals and drivers
- managing memory
- managing multitasking
- providing a platform for running applications
- providing system security
- managing user accounts
- Understand how hardware, firmware and an operating system are required to run applications software
Note and guidance
- Applications are run on the operating system
- The operating system is run on the firmware
- The bootloader (firmware) is run on the hardware
- Describe the role and operation of interrupts
Note and guidance
- Including:
- how an interrupt is generated
- how it is handled using an interrupt service routine
- what happens as a result of the interrupts
- Software interrupts include division by zero and two processes trying to access the same memory location
- Hardware interrupts include pressing a key on the keyboard and moving the mouse
4.2 Types of programming language, translators and integrated development environments (IDEs)
Candidates should be able to:
- Explain what is meant by a high-level language and a low-level language, including the advantages and disadvantages of each
Note and guidance
- Advantages and disadvantages include:
- ease of reading and writing code, e.g. low-level is hard to read
- ease of debugging code
- machine independence
- direct manipulation of hardware
Understand that assembly language is a form of low-level language that uses mnemonics, and that an assembler is needed to translate an assembly language program into machine code
Describe the operation of a compiler and an interpreter, including how high-level language is translated by each and how errors are reported
Note and guidance
- A compiler translates the whole code at once before executing it, producing an executable file
- An interpreter translates and executes the code line-by-line
- A compiler provides an error report for the whole code if errors are detected
- An interpreter stops execution when an error is found
- Explain the advantages and disadvantages of a compiler and an interpreter
Note and guidance
- To include an understanding that an interpreter is mostly used when developing a program and a compiler is used to translate the final program
- Explain the role of an IDE in writing program code and the common functions IDEs provide
Note and guidance
- Including:
- code editors
- run-time environment
- translators
- error diagnostics
- auto-completion
- auto-correction
- prettyprint